Instalace --------- Zip archiv rozbalte někam na disk. Pak si vytvořte zástupce na ploše nebo v nabídce Start. Odinstalace ----------- V menu Soubor zvolte Odstranit nastavení. Tím se smaže z registru složka HKEY_CURRENT_USER\Software\Petr Lastovicka\piskvorky. Potom program smažte z disku. Pravidla hry ------------ Vyhrává ten, kdo vedle sebe umístí nejméně pět svojich symbolů ve vodorovném, svislém nebo diagonálním směru. Ovládání -------- Hru začíná ten, kdo prohrál předchozí hru. Změnit se to dá stiskem tlačítka Nová hra (F2). Na stavovém řádku je u začínajícího hráče zobrazena hvězdička. Na konci hry stiskněte pravé tlačítko myši, aby se plocha vyčistila a vy jste mohli hrát dál. Během hry se při stisku pravého tlačítka myši zvýrazní poslední tah soupeře. Dobu přemýšlení lze měnit klávesami +, -, 0 až 9, nebo ji lze zadat přímo v sekundách (menu Hráči/Nastavení). Počítač si celý průběh hry pamatuje, a proto se můžete vracet zpět o libovolný počet tahů. Na konci hry si můžete hru znovu přehrát, stačí stisknout Home a pak klávesou PageDown krokovat po jednotlivých tazích. Můžete si také rozehranou nebo dohranou partii uložit na disk. Po otevření souboru můžete pokračovat ve hře nebo použít funkce zpět a vpřed. Když je při otevírání souboru stisknuto Ctrl, pak se nezmění obtížnost a hráči. Kliknutí pravým tlačítkem myši na jméno hráče na stavovém řádku přepne mezi Člověk / Počítač. Dvojklik na jméno hráče zobrazí okno pro výběr EXE souboru. Možnosti -------- - Šířka,výška: rozměry hrací plochy. Při jejich změně začne nová hra ! - pět nebo více vyhrává/přesně pět vyhrává: kolik svých symbolů musí hráč umístit do řady, aby vyhrál. Při turnaji vždy platí první pravidlo (šest a více v řadě je také výhra). - jednotlivé hry / kontinuální hra: Když zaškrtnete jednotlivé hry, pak každá hra skončí, jakmile jeden z hráčů vyhraje. Kontinuální hra znamená, že lze pokračovat ve hře tak dlouho, dokud se nezaplní celá hrací plocha. Při turnaji se vždy hrají jednotlivé hry. - Doba zvýraznění tahu: jak dlouho je zvýrazněn poslední tah. Pokud vás to při hře rozptyluje, pak zadejte 0. - Zobrazovat souřadnice: zobrazení čísel okolo hrací plochy. - Souřadnice číslovat od 1: jestli má první políčko souřadnice [1,1] nebo [0,0]. Má to vliv na logovací okno a čísla podél hrací plochy. Nemá to vliv na ukládané soubory a souřadnice posílané do AI. - Číslo tahu dělit dvěma: platí pro číslo tahu na stavovém řádku. - Posílat info evaluate x,y: používá se pro ladění AI. Tento příkaz se posílá při pohybu myši, ale jen když je na tahu člověk. - Zapisovat obsah roury do souboru: používá se pro ladění AI. Všechny příkazy zapsané nebo přečtené z roury se ukládají do souboru s příponou log, který je ve stejné složce jako AI. V případě ZIP je log ve složce TEMP\psqXXX\unzX. Při turnaji je tato možnost vždy vypnuta. - Automatické zahájení partie: při zaškrtnutí této možnosti je na začátku každé hry automaticky vygenerováno několik tahů. Je to dobré k tomu, aby hra nebyla vždy stejná. Když začíná AI, pak obvykle volí vždy stejné zahájení. Touto volbou mu lze vnutit jiná zahájení. - Kontrolovat časový limit: Zobrazí zprávu, když hráč přemýšlí moc dlouho. Při turnaji je čas kontrolován i v případě, že tuto možnost nezaškrtnete. - Tolerance: O kolik může AI přemýšlet déle než je časový limit. Tato hodnota musí být alespoň 100ms. - Paměť: maximální velikost paměti, kterou zabírá AI. Většina AI (včetně pbrain-pela) tuto hodnotu ignorují. - Pozastavit soupeřův pbrain: Zabrání tomu, aby AI přemýšlelo v době, kdy není na tahu, a užíralo tak čas procesoru druhému hráči. Je to potřeba hlavně pro turnaj. Tato možnost se ignoruje při hře proti člověku a také pokud AI používá souborový protokol (exe nezačíná na pbrain-). - Ladit pbrain: Pozastavování AI se bude provádět tak, že se manažer k AI připojí jako debugger. Jestliže tuto možnost vypnete, pak manažer bude hledat výpočetní vlákna AI mezi všemi spuštěnými aplikacemi, což každý tah o pár milisekund zpomalí. - Priorita procesu: Ovlivňuje rychlost jiných spuštěných programů během přemýšlení AI. - Logovací okno: co všechno se má vypisovat do logovacího okna. Příkazy message a debug jsou užitečné pro programátory k ladění jejich AI (pouze pro AI s prefixem pbrain-). - Složka pro data: AI si do této složky může ukládat soubory, které obsahují zkušenosti získané během hry. Většina AI tuto možnost zatím nevyužívá. - Ignorovat chyby: Když tuto možnost vypnete, pak se při chybě AI kromě hlášky od manažeru zobrazí také hláška od operačního systému, kde je zobrazena adresa chyby a tlačítko pro spuštění debuggeru. Při síťovém turnaji je tato možnost vždy apnuta. Další umělé inteligence (AI) ---------------------------- Na http://gomocup.wz.cz/ lze najít a stáhnout několik dalších AI od různých autorů. Většina z nich ale má nějaká omezení: 1) Hrací plocha musí být čtvercová. Některé AI umějí hrát jen na ploše 20x20. 2) Dobu přemýšlení lze nastavit s přesností jen na celé sekundy. Některé AI dokonce vůbec neumějí nastavit dobu přemýšlení. Některé AI si kontrolují pouze čas na jeden tah, ale ne čas celé partie. 3) Většina AI neumí kontinuální hru ani možnost přesně pět v řadě vyhrává. Turnaj ------ - Hráči: Na každý řádek editačního obdélníka napište název exe nebo zip souboru, nebo je vyberte tlačítkem Přidat. - Ukládat partie: Partie se budou ukládat do zvolené složky. Soubory _result.txt, _table.html, state.tur se do dané složky ukládají vždy. - Ukládat zprávy od AI: Příkazy message se budou ukládat do souboru messages.txt. - Gomotur formát (*.rec): Partie se budou ukládat ve formátu, který používá program Gomotur. Velikost hrací plochy musí být 20 x 20. - Jen prohrané: Budou se ukládat jen ty partie, které první hráč v seznamu prohrál. - Příkaz, který se spustí po každé partii/na konci turnaje: Externí EXE nebo BAT program. Může mít i parametry. Pracovním adresářem je složka, kam se ukládají výsledky partií. - Počet opakování/Počet partií: Máte-li n hráčů, k opakování, p partií, pak při zaškrtnutí každý s každým se odehraje k*p*n*(n-1)/2 zápasů. Při zaškrtnutí první proti všem ostatním je počet zápasů jen k*p*(n-1). AI se změní vždy po p partiích. Při turnaji po síti je skupina p po sobě jdoucích partií přiřazena stejnému klientovi. - Opakování při remíze: Maximální počet opakování partie, která skončila nerozhodně. - Pauza: Čekání na konci každé partie. - Tah: Maximální povolená doba přemýšlení nad jedním tahem. Zadává se v sekundách s přesností na tři desetinná místa. - Partie: Maximální povolená celková doba přemýšlení během partie. Měří se zvlášť pro každého hráče. Nulová hodnota znamená neomezeně. - Tolerance: O kolik může AI přemýšlet déle než je časový limit. Tato hodnota musí být alespoň 100ms. - Paměť: Maximální velikost paměti, kterou zabírá AI. Kontroluje se na konci každého tahu a při jejím překročení je partie ukončena. - Automatické zahájení partie: Automatické vygenerování několika tahů na začátku každé partie. Každá dvojice AI dostane stejná zahájení. Počet různých zahájení závisí na počtu partií a počtu opakování. Navíc je každé zahájení náhodně otočeno nebo posunuto. Rozměry hrací plochy a povolení pozastavení soupeřova AI se nastavují v dialogovém okně Možnosti. Tlačítkem Pokračovat se ze souboru state.tur obnoví stav dříve přerušeného turnaje. Ze souboru se načtou názvy hráčů, čas na tah, čas na partii, paměť, automatické zahájení, rozměry hrací plochy. Ostatní údaje je třeba zadat před stiskem tlačítka Pokračovat. Je také možné pokračovat v už dokončeném turnaji, pokud zvětšíte počet opakování. Turnaj lze kdykoli přerušit stiskem Esc. Ve výsledcích turnaje je počet výher a proher rozdělen na tři sčítance: 1) hráč začínal; 2) hráč nezačínal; 3) chyba nebo překročen časový limit. V okně výsledků se tlačítkem Tabulka zobrazí html tabulka, kde jsou výsledky pro jednotlivé dvojice hráčů. Turnaj po síti -------------- Turnaj lze odehrát pomocí několika počítačů. Na všech by měl být stejně rychlý procesor. Jeden počítač slouží jako server, ostatní jsou klienti. Nejdříve na serveru spusťte turnaj. Po spuštění se do logu napíše název počítače a server čeká na klienty. Klienty je možné připojovat nebo odpojovat kdykoli v přůběhu turnaje. Klienti se připojují příkazem z menu Hra/Připojit se. Kromě jména serveru a portu musíte zadat také složku, do které se budou stahovat AI ze serveru. Pokud už na klientu AI existují, pak se jen zkontroluje, jestli mají stejné CRC jako soubory na serveru. Jestliže se AI skládá z více souborů, pak musí být zpakováno do ZIP archivu. Po stažení ze serveru si klient rozbalí ZIP soubor do dočasného adresáře. Ze serveru se kromě AI posílají také informace o velikosti hrací plochy, časové limity, tolerance, limit paměti, automatické zahájení, povolení pozastavení soupeřova AI, maximální počet opakování při remíze. Pokud jste při spuštění turnaje zaškrtli "Ukládat partie do složky", pak klient po skončení partie posílá záznam o všech provedených tazích, jinak pošle jen výsledek partie a údaje o časech a využité paměti. Po skončení turnaje zůstávají klienti připojeni a čekají na další turnaj. Dokud je klient nebo server připojen, je většina položek z menu nepřístupná. Hra dvou hráčů přes internet ---------------------------- Hra se spustí z menu "Hra/Připojit se". Hráči se musejí předem nějak domluvit (např. pomocí SMS nebo ICQ), kdy spolu budou hrát. Oba musejí znát název nebo IP adresu druhého počítače. Některé funkce jsou při hře zakázány (vpřed, otevřít soubor, prohodit hráče, automatické zahájení). Čas není omezen. Hráči mohou mezi sebou komunikovat pomocí "Hra/Poslat zprávu". Dialogové okno pro posílání zpráv se automaticky aktivuje po stisku klávesy. Dávkové spouštění ----------------- Hru dvou AI lze spustit z příkazové řádky. První parametr je -p, druhý a třetí parametr jsou názvy AI, například piskvork -p brain1.exe brain2.exe. Návratová hodnota určuje, kdo vyhrál (1=první AI, 2=druhé AI, 3=remíza, 0=chyba). Licence ------- Na tento program (kromě složek skelet a skelet_Delphi) se vztahuje licence "Reciprocal Public License". Zde jsou uvedeny jen nejdůležitější body. Celé její znění (33KB, v anličtině) lze stáhnout z autorovy webové stránky nebo http://opensource.org/licenses. 1) Program je zdarma. Je povoleno ho kopírovat nebo distribuovat na CD, třeba spolu s jinými programy. 2) Program si můžete pro vlastní potřebu upravit. Také můžete části zdrojového kódu použít do svých vlastních programů. V obou případech musíte splnit následující požadavky: a) Nesmíte změnit nebo odstranit tuto licenci. b) Nesmíte smazat jméno původního autora. c) Zdokumentujete všechny provedené změny a u každé změny uvedete datum. d) Zdrojové kódy (včetně vašich úprav a rozšíření) zdarma zveřejníte na internetu. 3) Program je bez záruky. http://web.quick.cz/lastp http://sweb.cz/petr.lastovicka http://gomocup.wz.cz